home *** CD-ROM | disk | FTP | other *** search
- /dop{dup 6 le{vrb exch get exec}{pop}ifelse}B
- /vrb[{fp{fg 0 get 0 ne{g n G}
- {g 1 o pnsh pnsv S n G}ifelse}if np}bind
- /eofill load dup/newpath load 1 index dup{u np}bind]def
- /fp{pnsh 0 ne pnsv 0 ne and}B
- /pen{pnm mul/pnsh X pnm mul/pnsv X pnsh o}B
- /lin{fg 0 get 0 ne{l currentpoint 0 dop m}
- {currentpoint/@3 X/@4 X g np/@1 X/@2 X
- fp{@4 @2 lt{@3 @1 ge{@4 @3 m @2 @1 l pnsh 0 rl
- 0 pnsv rl @4 pnsh add @3 pnsv add l pnsh neg 0 rl}
- {@4 @3 m pnsh 0 rl @2 pnsh add @1 l 0 pnsv rl
- pnsh neg 0 rl @4 @3 pnsv add l}ifelse}{@3 @1 gt
- {@2 @1 m pnsh 0 rl @4 pnsh add @3 l 0 pnsv rl
- pnsh neg 0 rl @2 @1 pnsv add l}{@4 @3 m pnsh 0 rl
- 0 pnsv rl @2 pnsh add @1 pnsv add l pnsh neg 0 rl
- 0 pnsv neg rl}ifelse}ifelse cp v}if @2 @1 G m}ifelse}B
- /rc{dup/@flag X{/@t X g}if cps dup{5 1}{7 3}ifelse roll np
- 4 copy 4 2 roll exch m 6 -1 roll l l l cp @flag{@t dop G}if mif}B
- /cmnrr{cps np
- @4 @6 add 2. div @7 m
- @4 @7 @4 @5 @2 arcto p4
- @4 @5 @6 @5 @2 arcto p4
- @6 @5 @6 @7 @2 arcto p4
- @6 @7 @4 @7 @2 arcto p4
- cp mif}B
- /rr{/@1 X 2. div/@2 X pop/@4 X/@5 X/@6 X/@7 X
- @7 @5 eq @6 @4 eq or @2 pnsh 2 div le or @2 pnsv 2 div le or
- {@7 @6 @5 @4 @1 T rc}{@4 @6 sub abs 2. div dup @2 lt{/@2 X}{pop}ifelse
- @5 @7 sub abs 2. div dup @2 lt{/@2 X}{pop}ifelse
- @1 0 eq{@2 pnsh 2 div 2 copy gt{sub/@2 X}{p2}ifelse}if
- g cmnrr @1 dop G}ifelse}B
- /rr1{/@2 X/@4 X/@5 X/@6 X/@7 X cmnrr}B
- /qa{3 -1 roll add exch 3 -1 roll add exch}B
- /qm{3 -1 roll 1 index mul 3 1 roll mul}B
- /qs{3 -1 roll sub exch 3 -1 roll sub exch}B
- /qp{6 copy 12 -2 roll p2}B
- /qn{6a exch get mul}B
- /qx{6a astore pop
- qA 0 qn qB 2 qn add qA 1 qn qB 3 qn add
- qB 2 qn qA 4 qn add qB 3 qn qA 5 qn add
- qC 2 qn qC 4 qn add qC 3 qn qC 5 qn add}B
- /bp{currentpoint np 2 copy m}B
- /qi{{4 copy 2 copy 10 2 roll qa .5 qm np m}{2 copy 6 -2 roll 2 qm qs 4 2 roll}ifelse}B
- /qc{qp qx O}B
- /qq{{qc 6 -2 roll qx O}{4 copy qs qa qx O}ifelse}B
- /ep{dup 0 eq{{m}{lin}{}{}pathforall pop}{dop}ifelse G currentpoint np m}B
- /ef{ff{g V G}if}B
- /ec{1 and 0 ne{0 dop}if G currentpoint np m}B
- /eu{currentpoint fp{0 ep}{G np}ifelse m}B
- /pt{currentpoint np m}B
- /barc{/@flag X/@1 X/@3 X/@4 X @flag{/@2 X}if/@5 X
- /@6 X/@7 X/@8 X @flag{g}if cps mtx currentmatrix
- @5 @7 add 2 div @6 @8 add 2 div t np 0 0 m
- @5 @7 sub @6 @8 sub S @1{np}if
- 0 0 .5 @4 @3 arc @4 @3 sub abs 360 ge{cp}if
- z mif @flag{@2 dop G}if}B
- /ar{3 1 roll 2 index 0 eq T barc}B
- /ov{0 360 T 4 -1 roll barc}B
- /tc{32768 div add 3 1 roll 32768 div add 2t astore pop}B
- /tp{2a astore pop}B
- /tt{mx2 currentmatrix pop currentpoint 2 copy
- 2t aload pop qa 2 copy t 2a aload pop exch dup 0 eq
- {pop}{1 eq{-1 1}{1 -1}ifelse S}ifelse
- rotate neg exch neg exch t m}B
- /te{mx2 z}B
- /px{tp tt}B
- /dh{fg 0 1 put array astore dup{1 xpxs div mul exch}forall
- astore exch pop exch pop exch p}B
- /rh{fg 0 0 put ih aload pop p}B
- /sd{a50 0 3 -1 roll getinterval astore exch p}B
- /lw{div/pnm X pnsv pnsh pen}B
- /gr{64. div H}B
- /sg{rstrscr gr}B
- /pat{savscr sa8 copy pop patfr 0
- [{1 add 4 mul cvi}aload pop sa8
- {exch get exch 1 add 4 mul cvi 7 sub bitshift 1 and}aload pop]cvx setscreen gr}def
- /cpat{savscr 7 -1 roll sa8 copy pop patfr 0
- [{1 add 4 mul cvi}aload pop sa8
- {exch get exch 1 add 4 mul cvi 7 sub bitshift 1 and}aload pop]cvx
- 8 -1 roll sb8 copy pop patfr 0
- [{1 add 4 mul cvi}aload pop sb8
- {exch get exch 1 add 4 mul cvi 7 sub bitshift 1 and}aload pop]cvx
- 9 -1 roll sc8 copy pop patfr 0
- [{1 add 4 mul cvi}aload pop sc8
- {exch get exch 1 add 4 mul cvi 7 sub bitshift 1 and}aload pop]cvx
- 10 -1 roll sd8 copy pop patfr 0
- [{1 add 4 mul cvi}aload pop sd8
- {exch get exch 1 add 4 mul cvi 7 sub bitshift 1 and}aload pop]cvx
- setcolorscreen setcmykcolor}def
- /savscr{ns not{/ns T def cmykprsnt
- {currentcolorscreen currentcolortransfer count 16 roll}
- {currentscreen ctf count 4 roll}ifelse st0}if}def
- /rstrscr{ns{cmykprsnt{count -16 roll systemdict/setcolortransfer known
- {cstf}{stf p3}ifelse setcolorscreen}
- {count -4 roll stf setscreen}ifelse/ns F def}if}def
- /setclp{np 0 0 m
- ct1 99 get 0 ne{ct1 0 ct1 99 get getinterval cvx exec}if
- ct2 ctz get 256 mul ct2 ctz 1 add get add dup 0 ne
- {dup ct2 0 3 -1 roll getinterval cvx exec}if pop cps np mif}B
- /spcldr{dup doss ss and{sym fmtx makefont/xpfs X
- 0 0 3 -1 roll{s1 0 3 -1 roll put
- s1 chkch{g xpfs setfont w G}
- {w}ifelse 3 -1 roll add 3 1 roll add exch}forall}
- {w}ifelse pop 3 -1 roll exch sub 3 -1 roll
- /numz 5 -1 roll def numz 10 mul add div numz 0 eq
- {0 0}{dup 10 mul 0}ifelse 32 4 -1 roll 0 6 -1 roll
- doss ss and{xpash p3}{Q}ifelse}B
- /eto {0 1 2 index length 1 sub{2 copy 1 getinterval exch pop currentpoint
- 3 -1 roll M m exch 0 rm}for pop}B
- /calcbnd{72 72 mtx defaultmatrix dtransform abs exch abs 2 copy lt{exch}if
- /devpxwd 72 3 -1 roll div def/languagelevel where{pop languagelevel}
- {1}ifelse 2 ge{pop 256}{/currentcolorscreen where
- {pop currentcolorscreen p2 3{3 index 2 copy lt{exch}if 5 1 roll p4}repeat}
- {currentscreen p2}ifelse div dup mul round cvi 15 add 16 idiv dup 1 lt{pop 1}if
- 16 mul dup 256 gt{pop 256}if}ifelse minblnd 2 copy lt{exch}if pop/maxblnd X}B
- /setsepval{dup -1 eq{pop aload pop setcmykcolor}
- {setcustomcolor}ifelse currentgray}B
- /setcompval{dup -1 eq{pop aload pop}
- {exch aload p2 4{4 index mul 4 1 roll}repeat 5 -1 roll pop}ifelse}B
- /blnd{dup/blmode X 2 eq{/k1 X/y1 X/m1 X/c1 X/k0 X/y0 X/m0 X/c0 X}{/k1 X/k0 X}ifelse
- k1 k0/@1 X/@2 X blmode 2 eq{@2 @1 sub abs c1 c0 sub abs 2 copy lt
- {exch c1 c0/@1 X/@2 X}if pop m1 m0 sub abs 2 copy lt
- {exch m1 m0/@1 X/@2 X}if pop y1 y0 sub abs lt{y1 y0/@1 X/@2 X}if}if
- @1 @2 blmode 2 eq{1 exch sub exch 1 exch sub}if 2 copy lt{exch}if
- sub maxblnd mul round cvi dup dup/blstp X 0 eq{pop 1}if
- /blw 256 blstp 1 add div def/kstp k1 k0 sub 2 index div def
- blmode 2 eq{/cstp c1 c0 sub 2 index div def/mstp m1 m0 sub 2 index div def
- /ystp y1 y0 sub 2 index div def}if pop g np[]0 p 0 a
- blw dup dup devpxwd dup add add o 2 div blstp 1 add
- blmode 2 eq{{c0 m0 y0 k0 setcmykcolor dup 0 m 0 256 rl n 1 index add
- /c0 c0 cstp add def/m0 m0 mstp add def/y0 y0 ystp add def/k0 k0 kstp add def}repeat}
- {{k0 blmode 0 eq{H}{sepgr}ifelse dup 0 m 0 256 rl n 1 index add/k0 k0 kstp add def}repeat
- }ifelse p2 G}B
- /custblnd{dup -2 eq{doregblnd{exch dup length 1 sub get 1 exch sub exch T F}
- {pop dup length 6 eq{dup 0 5 getinterval exch 5 get}{0 4 getinterval -1}ifelse T}ifelse}{T}ifelse
- {dup -1 eq{F}{1 index docust exch pop}ifelse}if
- 5 -2 roll dup -2 eq{doregblnd{exch dup length 1 sub get 1 exch sub exch T F}
- {pop dup length 6 eq{dup 0 5 getinterval exch 5 get}{0 4 getinterval -1}ifelse T}ifelse}{T}ifelse
- {dup -1 eq{F}{1 index docust exch pop}ifelse}if 6 -3 roll 4 -1 roll or
- {dup -2 eq{pop}{setsepval}ifelse 3 1 roll dup -2 eq{pop}{setsepval}ifelse exch 1 blnd}
- {setcompval 6 -2 roll setcompval 8 -4 roll 2 blnd}ifelse}B
-